﻿using System;
using System.Collections.Generic;
using System.Text;

namespace DEnc
{
    /// <summary>
    /// A collection of language codes for validation.
    /// </summary>
    public static class LanguageCodes
    {
        /// <summary>
        /// Contains a list of languages where the key is a two or three character language code, and the value is the three character language code.
        /// </summary>
        public static readonly IReadOnlyDictionary<string, string> Languages = new Dictionary<string, string>()
        {
            {"ab","abk"}, {"abk","abk"},
            {"aa","aar"}, {"aar","aar"},
            {"af","afr"}, {"afr","afr"},
            {"ak","aka"}, {"aka","aka"},
            {"sq","sqi"}, {"sqi","sqi"},
            {"am","amh"}, {"amh","amh"},
            {"ar","ara"}, {"ara","ara"},
            {"an","arg"}, {"arg","arg"},
            {"hy","hye"}, {"hye","hye"},
            {"as","asm"}, {"asm","asm"},
            {"av","ava"}, {"ava","ava"},
            {"ae","ave"}, {"ave","ave"},
            {"ay","aym"}, {"aym","aym"},
            {"az","aze"}, {"aze","aze"},
            {"bm","bam"}, {"bam","bam"},
            {"ba","bak"}, {"bak","bak"},
            {"eu","eus"}, {"eus","eus"},
            {"be","bel"}, {"bel","bel"},
            {"bn","ben"}, {"ben","ben"},
            {"bh","bih"}, {"bih","bih"},
            {"bi","bis"}, {"bis","bis"},
            {"bs","bos"}, {"bos","bos"},
            {"br","bre"}, {"bre","bre"},
            {"bg","bul"}, {"bul","bul"},
            {"my","mya"}, {"mya","mya"},
            {"ca","cat"}, {"cat","cat"},
            {"ch","cha"}, {"cha","cha"},
            {"ce","che"}, {"che","che"},
            {"ny","nya"}, {"nya","nya"},
            {"zh","zho"}, {"zho","zho"},
            {"cv","chv"}, {"chv","chv"},
            {"kw","cor"}, {"cor","cor"},
            {"co","cos"}, {"cos","cos"},
            {"cr","cre"}, {"cre","cre"},
            {"hr","hrv"}, {"hrv","hrv"},
            {"cs","ces"}, {"ces","ces"},
            {"da","dan"}, {"dan","dan"},
            {"dv","div"}, {"div","div"},
            {"nl","nld"}, {"nld","nld"},
            {"dz","dzo"}, {"dzo","dzo"},
            {"en","eng"}, {"eng","eng"},
            {"eo","epo"}, {"epo","epo"},
            {"et","est"}, {"est","est"},
            {"ee","ewe"}, {"ewe","ewe"},
            {"fo","fao"}, {"fao","fao"},
            {"fj","fij"}, {"fij","fij"},
            {"fi","fin"}, {"fin","fin"},
            {"fr","fra"}, {"fra","fra"},
            {"ff","ful"}, {"ful","ful"},
            {"gl","glg"}, {"glg","glg"},
            {"ka","kat"}, {"kat","kat"},
            {"de","deu"}, {"deu","deu"},
            {"el","ell"}, {"ell","ell"},
            {"gn","grn"}, {"grn","grn"},
            {"gu","guj"}, {"guj","guj"},
            {"ht","hat"}, {"hat","hat"},
            {"ha","hau"}, {"hau","hau"},
            {"he","heb"}, {"heb","heb"},
            {"hz","her"}, {"her","her"},
            {"hi","hin"}, {"hin","hin"},
            {"ho","hmo"}, {"hmo","hmo"},
            {"hu","hun"}, {"hun","hun"},
            {"ia","ina"}, {"ina","ina"},
            {"id","ind"}, {"ind","ind"},
            {"ie","ile"}, {"ile","ile"},
            {"ga","gle"}, {"gle","gle"},
            {"ig","ibo"}, {"ibo","ibo"},
            {"ik","ipk"}, {"ipk","ipk"},
            {"io","ido"}, {"ido","ido"},
            {"is","isl"}, {"isl","isl"},
            {"it","ita"}, {"ita","ita"},
            {"iu","iku"}, {"iku","iku"},
            {"ja","jpn"}, {"jpn","jpn"},
            {"jv","jav"}, {"jav","jav"},
            {"kl","kal"}, {"kal","kal"},
            {"kn","kan"}, {"kan","kan"},
            {"kr","kau"}, {"kau","kau"},
            {"ks","kas"}, {"kas","kas"},
            {"kk","kaz"}, {"kaz","kaz"},
            {"km","khm"}, {"khm","khm"},
            {"ki","kik"}, {"kik","kik"},
            {"rw","kin"}, {"kin","kin"},
            {"ky","kir"}, {"kir","kir"},
            {"kv","kom"}, {"kom","kom"},
            {"kg","kon"}, {"kon","kon"},
            {"ko","kor"}, {"kor","kor"},
            {"ku","kur"}, {"kur","kur"},
            {"kj","kua"}, {"kua","kua"},
            {"la","lat"}, {"lat","lat"},
            {"lb","ltz"}, {"ltz","ltz"},
            {"lg","lug"}, {"lug","lug"},
            {"li","lim"}, {"lim","lim"},
            {"ln","lin"}, {"lin","lin"},
            {"lo","lao"}, {"lao","lao"},
            {"lt","lit"}, {"lit","lit"},
            {"lu","lub"}, {"lub","lub"},
            {"lv","lav"}, {"lav","lav"},
            {"gv","glv"}, {"glv","glv"},
            {"mk","mkd"}, {"mkd","mkd"},
            {"mg","mlg"}, {"mlg","mlg"},
            {"ms","msa"}, {"msa","msa"},
            {"ml","mal"}, {"mal","mal"},
            {"mt","mlt"}, {"mlt","mlt"},
            {"mi","mri"}, {"mri","mri"},
            {"mr","mar"}, {"mar","mar"},
            {"mh","mah"}, {"mah","mah"},
            {"mn","mon"}, {"mon","mon"},
            {"na","nau"}, {"nau","nau"},
            {"nv","nav"}, {"nav","nav"},
            {"nd","nde"}, {"nde","nde"},
            {"ne","nep"}, {"nep","nep"},
            {"ng","ndo"}, {"ndo","ndo"},
            {"nb","nob"}, {"nob","nob"},
            {"nn","nno"}, {"nno","nno"},
            {"no","nor"}, {"nor","nor"},
            {"ii","iii"}, {"iii","iii"},
            {"nr","nbl"}, {"nbl","nbl"},
            {"oc","oci"}, {"oci","oci"},
            {"oj","oji"}, {"oji","oji"},
            {"cu","chu"}, {"chu","chu"},
            {"om","orm"}, {"orm","orm"},
            {"or","ori"}, {"ori","ori"},
            {"os","oss"}, {"oss","oss"},
            {"pa","pan"}, {"pan","pan"},
            {"pi","pli"}, {"pli","pli"},
            {"fa","fas"}, {"fas","fas"},
            {"pl","pol"}, {"pol","pol"},
            {"ps","pus"}, {"pus","pus"},
            {"pt","por"}, {"por","por"},
            {"qu","que"}, {"que","que"},
            {"rm","roh"}, {"roh","roh"},
            {"rn","run"}, {"run","run"},
            {"ro","ron"}, {"ron","ron"},
            {"ru","rus"}, {"rus","rus"},
            {"sa","san"}, {"san","san"},
            {"sc","srd"}, {"srd","srd"},
            {"sd","snd"}, {"snd","snd"},
            {"se","sme"}, {"sme","sme"},
            {"sm","smo"}, {"smo","smo"},
            {"sg","sag"}, {"sag","sag"},
            {"sr","srp"}, {"srp","srp"},
            {"gd","gla"}, {"gla","gla"},
            {"sn","sna"}, {"sna","sna"},
            {"si","sin"}, {"sin","sin"},
            {"sk","slk"}, {"slk","slk"},
            {"sl","slv"}, {"slv","slv"},
            {"so","som"}, {"som","som"},
            {"st","sot"}, {"sot","sot"},
            {"es","spa"}, {"spa","spa"},
            {"su","sun"}, {"sun","sun"},
            {"sw","swa"}, {"swa","swa"},
            {"ss","ssw"}, {"ssw","ssw"},
            {"sv","swe"}, {"swe","swe"},
            {"ta","tam"}, {"tam","tam"},
            {"te","tel"}, {"tel","tel"},
            {"tg","tgk"}, {"tgk","tgk"},
            {"th","tha"}, {"tha","tha"},
            {"ti","tir"}, {"tir","tir"},
            {"bo","bod"}, {"bod","bod"},
            {"tk","tuk"}, {"tuk","tuk"},
            {"tl","tgl"}, {"tgl","tgl"},
            {"tn","tsn"}, {"tsn","tsn"},
            {"to","ton"}, {"ton","ton"},
            {"tr","tur"}, {"tur","tur"},
            {"ts","tso"}, {"tso","tso"},
            {"tt","tat"}, {"tat","tat"},
            {"tw","twi"}, {"twi","twi"},
            {"ty","tah"}, {"tah","tah"},
            {"ug","uig"}, {"uig","uig"},
            {"uk","ukr"}, {"ukr","ukr"},
            {"ur","urd"}, {"urd","urd"},
            {"uz","uzb"}, {"uzb","uzb"},
            {"ve","ven"}, {"ven","ven"},
            {"vi","vie"}, {"vie","vie"},
            {"vo","vol"}, {"vol","vol"},
            {"wa","wln"}, {"wln","wln"},
            {"cy","cym"}, {"cym","cym"},
            {"wo","wol"}, {"wol","wol"},
            {"fy","fry"}, {"fry","fry"},
            {"xh","xho"}, {"xho","xho"},
            {"yi","yid"}, {"yid","yid"},
            {"yo","yor"}, {"yor","yor"},
            {"za","zha"}, {"zha","zha"},
            {"zu","zul"}, {"zul","zul"}
        };
    }
}
